public class MyQueue {
    // 先构造一个结点方法
    static class ListNode{
        public int val;
        public ListNode next;

        public ListNode(int val) {
            this.val = val;
        }
    }
    public ListNode head;
    public ListNode last;
    int usedsize = 0;
    // 将一个元素放入队列
    public void offer(int val){
        ListNode node = new ListNode(val);
        if(head == null){
            head = node;
            last = node;
        }else{
            last.next=node;
            last = last.next;
        }
        usedsize++;
    }
    private int getUsedsize(){
        return usedsize;
    }
    // 将元素出队
    public int poll(){
        // 没有结点时
        if(head == null){
            return -1;
        }
        int val = -1;  // 记录要删除的 val 值，并返回
        // 只有一个结点时
        if(head.next == null){
            val = head.val;
            head = null;
            last = null;
            return val;
        }
        // 一般的情况下
        val = head.val;
        head = head.next;
        usedsize--;
        return  val;

    }
    // 获取出队列的元素
    public int peek(){
        if(head == null){
            return -1;
        }
        return head.val;
    }

}
